The present invention relates to information processing systems in which multiple processing devices are coupled to a main storage memory or other shared resource, and more particularly to means for allocating access to the shared resource among the processing devices.
Among the recent trends in data processing are computer architectures which increasingly employ multiple processing devices sharing a common interface to main storage. Multiple processor networks typically employ serializing mechanisms in order to protect shared data areas or objects in main storage. In the event that two or more of the processing devices simultaneously request access to a shared area of data within main storage, one or more of the serializing mechanisms resolves the conflict and grants access to one of the requesting devices. One approach to serializing among multiple processing devices is to configure each of the devices uniquely, such that the processing devices have different priorities. This type of system tends to favor the high priority processors at the expense of overall system performance.
It also is known to provide a central hub or controller coupled to all of the processing devices, but central hub systems require additional hardware. Test and set semaphores have been used to settle contentions among processing devices, yet such semaphores involve handshakes that require using shared data in main storage, increasing the required bandwidth to main storage and increasing the time necessary for data operations and contention resolution.
Therefore, it is an object of the present invention to provide a system of arbitration among multiple processing devices, that operates independently of main storage.
Another object is to provide an interconnection of multiple processing devices that maintains coherency among the processing devices without requiring a central hub.
A further object of the invention is to provide a means to serialize multiple instruction streams in a manner that resolves contentions among processing devices for shared objects in main storage and permits processors to run instruction streams in parallel.
Yet another object is to provide a network of multiple processing devices in which contentions are resolved rapidly, and the hold-off of any device losing contention for a shared object is reduced.